<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1.深拷贝和浅拷贝只存在于复杂数据类型
        // (1)复杂数据类型的浅拷贝
        // 数据是放在堆里的，地址是放在栈里的
        // 就是我拷贝了数据指向的地址，然后我的地址改变，数据也会变
        // 相当于人是数据，房子是地址，我房子位置变了，人是里面的，所以人也会变
        //  let a = [1,2,3];
        // let b = a;
        // a[0] = 100;
        // console.log(a); //[100, 2, 3]
        // console.log(b); //[100, 2, 3]

        //（2）复杂数据类型的深拷贝
        // 就是我拷贝的是一个引用
        // 就相当于我把数据复制了过来，我复制过来的数据变，我的原数据是不会变的
        // 就相当于人在房子了，现在复制了一模一样的房子和人，那个房子的人数变化，你这个房子是不会知道的

        let a = {"name":"la","age":18};
        let b = JSON.stringify(a);
        console.log(b);
        let c = JSON.parse(b);
        a.age = 28;
        console.log(a);//{"name":"la","age":28}
        console.log(c);//{"name":"la","age":18}

        // 2.简单数据类型其实就是一个赋值，非要说是什么拷贝，其实可以说是深拷贝；
        // var a = 1;
        // var b = a;
        // b = 10;
        // console.log(a,b);//1,10
        // 就是只是一个赋值，之后我这个赋值了的值再怎么变也不会影响你给我的那个值
    </script>
</body>

</html>